ShortCut na Desktop

Otázka od: Števlík Marián

25. 10. 2002 7:43

Caute
Chcel sby som sa vas opytat, ako mozem k nejakemu suboru (predpokladajme ze
ide o exe) vytvorit programovo shortcut a aby bol umiestneny na desktop?
Dik

Stevlik Marian
Software Development Specialist
MERLIN
Stefanikova 32
150 00 Prague 5
Czech Republic
e-mail: marian.stevlik@merlin.cz
tel: +420 241010111 (181)
fax: +420 241010165
ICQ: 38493645

Odpovedá: ing. Jan Fiala

25. 10. 2002 8:20

Na zjisteni adresare plochy muzes pouzit treba funkci z JCL
GetDeskTopDirectory. Jako AFileName predas jmeno zastupce, treba
IncludeTrailingBackSlash(GetDeskTopDirectory) + 'Word.lnk'
Procedura vytvori zastupce podle spusteneho programu
(Application.ExeName), ale to uz si urcite upravis podle potreby

Uses ShlObj, ActiveX, ComObj...

procedure Link(AFileName: string);
var
  Link: IShellLink;
  IPFile: IPersistFile;
  s: string;
  s2: WideString;
begin
  if not FileExists(AFileName) then
  begin
    Link := CreateComObject(CLSID_ShellLink) as IShellLink;
    IPFile := Link as IPersistFile;
    s := Application.ExeName;
    OleCheck(Link.SetPath(PChar(s)));
    s := ExtractFileDir(Application.ExeName);
    OleCheck(Link.SetWorkingDirectory(PChar(s)));
    s2 := AFileName;
    OleCheck(IPFile.Save(PWideChar(s2), False));
  end;
end;


--
ing. Jan Fiala
mailto:jan.fiala@iol.cz

25.10.2002 Števlík Marián:
> Caute
> Chcel sby som sa vas opytat, ako mozem k nejakemu suboru (predpokladajme ze
> ide o exe) vytvorit programovo shortcut a aby bol umiestneny na desktop?
> Dik

Odpovedá: Blazek Jaroslav

25. 10. 2002 7:33

Ahoj,

> Marian.Stevlik@merlin.cz 25.10.02 6:24 >>>
>Chcel sby som sa vas opytat, ako mozem k nejakemu suboru (predpokladajme ze
>ide o exe) vytvorit programovo shortcut a aby bol umiestneny na desktop?

http://www.windev.cz/clanek.asp?stranka=shell_I.htm


S pozdravem

Bc. Jaroslav Blazek
Access-IT Ceska Lipa
mailto:jaroslav.blazek@access-it.cz
http://www.access-it.cz
ICQ# : 133673990
+420605/813644

Odpovedá: Petr Vones

25. 10. 2002 14:56

From: "Števlík Marián" <Marian.Stevlik@merlin.cz>
> Chcel sby som sa vas opytat, ako mozem k nejakemu suboru (predpokladajme ze
> ide o exe) vytvorit programovo shortcut a aby bol umiestneny na desktop?

Napriklad pomoci funkce ShellLinkCreateSystem z JCL:
http://sourceforge.net/project/showfiles.php?group_id=47514&release_id=118195
http://delphi-jedi.org/CODELIBJCL

uses
  ComObj, ShlObj, JclShell;

procedure TForm1.Button1Click(Sender: TObject);
var
  Link: TShellLink;
begin
  FillChar(Link, SizeOf(Link), 0);
  Link.Target := 'notepad.exe';
  Link.Description := 'My Notepad';
  OleCheck(ShellLinkCreateSystem(Link, CSIDL_DESKTOP, 'Notepad.lnk'));
end;

Petr Vones